Programmable controllers are a well known class of industrial computers for operating a wide variety of manufacturing equipment, such as assembly lines and machine tools, in accordance with a stored control program. The program comprises a series of process control instructions which are read out and executed to examine the condition of selected sensing devices on the controlled equipment, and to energize or deenergize selected operating devices contingent upon the status of one or more of the examined sensing devices.
The state of many sensing and operating devices can be represented by a single bit of data which is manipulated by the control program instructions. Other devices, such as position sensors, provide multiple bits of data representing a condition of the equipment being controlled. For these latter devices, instructions are provided to manipulate bytes and words of data representing the state of the sensing and operating devices. As used herein the term "byte" refers to eight-bits of digital data, and the term "word" refers to sixteen-bits, or two bytes, of data. Additional program instructions perform arithmetic operations, timing and counting functions, and complex statistical reporting operations. These instructions have become quite standardized in the industry and are directly associated with the elements of a ladder logic diagram which is easily understood by process control engineers.
As programmable controllers were applied to more complex manufacturing systems, they were required to perform a wider range of tasks quickly. In order to perform certain tasks quickly and efficiently, custom co-processor circuits have been proposed to relieve the primary processing unit of the programmable controller from handling those tasks. However, the operation of the co-processor has to be coordinated with that of the primary processing unit. In addition, as different custom co-processors can be connected to the same programmable controller, a mechanism is required by which the functionality of the co-processor can be identified by the primary processing unit.